/*!
    \copyright  Copyright (c) 2025 Qualcomm Technologies International, Ltd.
                All Rights Reserved.
                Qualcomm Technologies International, Ltd. Confidential and Proprietary.
    \file
    \ingroup    pairing
    \brief      Pairing plugin private
*/
#ifndef PAIRING_PRIVATE_H
#define PAIRING_PRIVATE_H

#include "pairing.h"
#include "pairing_plugin_sm.h"

/*! \brief Get Pairing FSM state

    Returns current state of the Pairing FSM.
*/
pairingState pairing_GetState(pairingTaskData *thePairing);

/*! \brief Set Pairing FSM state

    Called to change state.  Handles calling the state entry and exit
    functions for the new and old states.
*/
void pairing_SetState(pairingTaskData *thePairing, pairingState state);

/*! \brief Reset pairing parameters to default values
*/
void pairing_ResetParams(pairing_params_t* params);

/*! \brief Process a pending IO capability request

    Called when IO capability request is received or on Pairing_PluginRetry
*/
void pairing_ProcessIoCapabilityRequestInd(pairing_plugin_context_t context);

/*! \brief Process a pending user confirmation request

    Called when user confirmation request is received or on Pairing_PluginRetry
*/
void pairing_ProcessUserConfirmationInd(pairing_plugin_context_t context);

/*! \brief Process a pending CTKD

    Called when CTKD is received or on Pairing_PluginRetry
*/
void pairing_ProcessCrossTransKeyInd(pairing_plugin_context_t context);

/*! \brief Process a pending SSP complete

    Called when SSP complete is received or on Pairing_PluginRetry
*/
void pairing_ProcessSspCompleteInd(pairing_plugin_context_t context);

#endif // PAIRING_PRIVATE_H
